import {
     orderPay
} from '../../api/order.js';

const app = getApp();

Component({
     properties: {
          payMode: {
               type: Array,
               value: [],
          },
          pay_close: {
               type: Boolean,
               value: false,
          },
          order_id: {
               type: String,
               value: ''
          },
          totalPrice: {
               type: String,
               value: '0'
          },
     },
     data: {},
     attached: function() {},
     methods: {
          close: function() {
               this.triggerEvent('onChangeFun', {
                    action: 'pay_close'
               });
          },
          goPay: function(e) {
               let that = this;
               let paytype = e.currentTarget.dataset.value;
               let number = e.currentTarget.dataset.number
               if (!that.data.order_id) return app.Tips({
                    title: '请选择要支付的订单'
               });
               
               // wx.navigateTo({
               //      url: '/pages/pay/pay?uid=' + app.globalData.userInfo.uid + '&orderId=' + that.data.order_id
               // })

                if (paytype == 'yue' && parseFloat(number) < parseFloat(that.data.totalPrice)) return app.Tips({ title: '余额不足！' });
                wx.showLoading({ title: '支付中' });
                orderPay({ uni: that.data.order_id, paytype: paytype, 'from': 'routine' }).then(res => {
                  switch (paytype){
                    case 'weixin':
                      if (res.data.result === undefined) return app.Tips({title:'缺少支付参数'});
                      var jsConfig = res.data.result.jsConfig;
                      wx.requestPayment({
                        timeStamp: jsConfig.timestamp,
                        nonceStr: jsConfig.nonceStr,
                        package: jsConfig.package,
                        signType: jsConfig.signType,
                        paySign: jsConfig.paySign,
                        success: function (res) {
                          wx.hideLoading();
                          return app.Tips({ title: res.msg, icon: 'success' }, () => {
                            that.triggerEvent('onChangeFun', { action: 'pay_complete' });
                          });
                        },
                        fail: function (e) {
                          wx.hideLoading();
                          return app.Tips({ title: '取消支付' }, () => {
                            that.triggerEvent('onChangeFun', { action: 'pay_fail' });
                          });
                        },
                        complete: function (e) {
                          wx.hideLoading();
                          if (e.errMsg == 'requestPayment:cancel') return app.Tips({ title: '取消支付' }, () => {
                            that.triggerEvent('onChangeFun', { action: 'pay_fail' });
                          });
                        },
                      });
                    break;
                    case 'yue':
                      wx.hideLoading();
                      return app.Tips({ title: res.msg, icon: 'success' }, () => {
                        that.triggerEvent('onChangeFun', { action: 'pay_complete' });
                      });;
                    break;
                    case 'offline':
                      wx.hideLoading();
                      return app.Tips({ title: res.msg, icon: 'success' }, () => {
                        that.triggerEvent('onChangeFun', { action: 'pay_complete' });
                      });;
                    break;
                  }
                }).catch(err => {
                  wx.hideLoading();
                  return app.Tips({ title: err }, () => {
                    that.triggerEvent('onChangeFun', { action: 'pay_fail' });
                  });
                })
          },
     }

})